package org.atovio.pk;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import java.util.Date;

/*
    @SpringBootApplication
    核心注解功能，该注解复合了三个重要的注解
        1. @SpringBootConfiguration 包含@Configuration注解的功能
                @Configuration      JavaConfig的功能，也就是配置类。结合@Bean注解可以将对象注入到IoC容器中
            那么SpringBootConfiguration注解标注的类也是配置类
        2. @EnableAutoConfiguration 开启自动配置。将spring和第三方库的对象都创建好，注入到spring容器中
        3. @ComponentScan           组件扫描，就是spring配置文件里的 <context:component-scan base-package=""/>
                springboot约定，扫描根包及其子包
 */
@SpringBootApplication
public class Springboot004PackageApplication {

    @Bean
    public Date myDate() {
        return new Date();
    }

    public static void main(String[] args) {
        // run方法的第一个参数是 源（配置类），从这里加载Bean，注入到Spring的容器中
        // run方法返回的是容器对象
        SpringApplication.run(Springboot004PackageApplication.class, args);
    }

}
